package br.com.insight.consultoria.negocio.bo;

import java.util.List;

import br.com.insight.consultoria.entity.Usuario;
import br.com.insight.consultoria.entity.UsuarioVaga;
import br.com.insight.consultoria.entity.UsuarioVaga.idUsuarioVaga;
import br.com.insight.consultoria.erro.exception.InsightConstants;
import br.com.insight.consultoria.erro.exception.InsightException;
import br.com.insight.consultoria.erro.exception.SistemaException;
import br.com.insight.consultoria.integracao.dao.interfacedao.UsuarioVagaDAO;
import br.com.insight.consultoria.negocio.bo.interfacebo.UsuarioVagaBO;

public class UsuarioVagaImpBO implements UsuarioVagaBO{

	private UsuarioVagaDAO usuarioVagaDAO;
	
	@Override
	public void inserir(UsuarioVaga usuarioVaga) throws InsightException {
		
		try{
			
			getUsuarioVagaDAO().inserir(usuarioVaga);
			
		}catch(InsightException exception){
			
			throw exception;
			
		}catch(Exception exception){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,exception);
			
	}
		
	}
	
	@Override
	public void alterar(UsuarioVaga usuarioVaga) throws InsightException {
		
		try{
		
			getUsuarioVagaDAO().alterar(usuarioVaga);
			
		}catch(InsightException exception){
			
			throw exception;
			
		}catch(Exception exception){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,exception);
			
	}
	}
	
	@Override
	public void excluir(UsuarioVaga usuarioVaga) throws InsightException {
		
		try{
		
			getUsuarioVagaDAO().excluir(usuarioVaga);
			
		}catch(InsightException exception){
			
			throw exception;
			
		}catch(Exception exception){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,exception);
			
	}
	}
	
	@Override
	public UsuarioVaga getUsuarioVaga(idUsuarioVaga id) throws InsightException {
		
		UsuarioVaga usuarioVaga=null;
		
		try{
			
			usuarioVaga=getUsuarioVagaDAO().getUsuarioVaga(id);
		
		}catch(InsightException exception){
			
			throw exception;
			
		}catch(Exception exception){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,exception);
			
	}
		return usuarioVaga;
	}
	
	@Override
	public List<UsuarioVaga> pesquisar(Usuario usuario) throws InsightException {
		
		List<UsuarioVaga> listaUsuarioVaga=null;
		
		try{
			
			listaUsuarioVaga=getUsuarioVagaDAO().pesquisar(usuario);
		
		}catch(InsightException exception){
			
			throw exception;
			
		}catch(Exception exception){
			
			throw new SistemaException(InsightConstants.MENSAGEM_ERRO_NAO_TRATADO,exception);
			
	}
		return listaUsuarioVaga;
	}

	public boolean isUsuarioVagaConcorrendo(idUsuarioVaga id) throws InsightException{
		
		UsuarioVaga usuarioVaga=getUsuarioVaga(id);
		if(usuarioVaga!=null)
			return true;
		
		return false;
	}
	
	public UsuarioVagaDAO getUsuarioVagaDAO() {
		return usuarioVagaDAO;
	}

	public void setUsuarioVagaDAO(UsuarioVagaDAO usuarioVagaDAO) {
		this.usuarioVagaDAO = usuarioVagaDAO;
	}
	
}
